home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr25
/
dirstack.zip
/
DIRSTACK.TXT
next >
Wrap
Text File
|
1993-03-03
|
6KB
|
140 lines
DirStack 2.01
(incorporating PUSHD, POPD, INITD)
Batch file directory stack commands
(c) 1993 ZingoTech Labs / Jim Nelson
------------------------------------
Licensing and availability
--------------------------
DirStack is FREEWARE. Please distribute everywhere. There is no
charge incurred or expected by the author for its use or distribution.
The only obligation is that this text file be included as part of any
distribution.
Operation
---------
These 3 programs work together as an effective batch-file based
directory stack. I originally saw these commands on a SCO UNIX
machine, and found them quite useful in script files for that
system. With a little ingenuity, I hacked out similar commands for
DOS.
Here's the idea: let's say you have a batch file that changes drives
or directories internally. This is sometimes more than a nuisance;
great ideas for complex batch files are quickly killed when one
realizes there's no effective way to get back to the directory you
started in.
That's what these are for. PUSHD will push on a stack the current
drive/directory. POPD pops the most recently pushed directory off
the stack, and changes the drive/directory accordingly.
Now, in some implementations of UNIX, there are script commands that
allow you to build an array of characters -- perfect for this type of
application. As a matter of fact, these commands were not even scripts
themselves, but simply aliases (commands re-interpreted by the shell
before execution). The overhead was low to none in this kind of
implementation.
Not so, with DOS-based machines. I've seen directory stacks for DOS
before, but they always relied on a TSR. None of these files are
TSR-based. Instead, the stack is located in a temporary file
(DIRSTACK.DAT). Each program manipulates the file in its own unique
manner.
INITD
-----
INITD initializes (clears) the stack for the other modules. Although
it's probably not needed in normal use, it is needed if the PC crashes;
after a reboot, the stack is still (faithfully) there. This is a
good AUTOEXEC.BAT or Login Script command.
INITD /S will not clear the stack, but print to standard output the
path it (and the other modules) will use to look for DIRSTACK.DAT.
PUSHD
-----
This will push the current drive and directory onto the stack. That's
it.
POPD
----
This will pop from the stack a drive and directory, and then attempt
to make that the current path.
Error messages
--------------
Unobtrusiveness was a specification from the beginning. Error messages
are brief (and to standard output). The only error messages that will
appear are if DIRSTACK is unwritable (read-only attribute?), the
directory is unwritable, or if the drive/directory popped is unavailable.
Finding DIRSTACK.DAT
--------------------
Since this is not a TSR-based package, each utility must hunt for the
DIRSTACK.DAT individually, each time it is executed. They each follow
the same set of rules:
1. Use directory specified by the environment variable STACK.
2. Ditto for TEMP.
3. Ditto for TMP.
4. Find first local fixed drive, and locate file in its root.
5. Use the directory the module is located in.
I have chosen this order to hopefully avoid lost stacks and multiple users
overwriting the same stack on a network. Best bet? Use the STACK
variable if you plan on using these modules a lot in your batch files.
Of course, for best results, make sure they are all located in the PATH.
Final thoughts
--------------
I hope you enjoy using this suite of modules. I developed them
specifically for my needs, but tried to be "global-thinking" enough for
anyone in any PC environment to find them useful. Most of the
considerations I made were really for a PC network system administrator.
If you find yourself using these quite a bit, please write to me (address
below) and tell me what you think. To be really honest, I'm not sure how
much practical value this package has, and would like to hear if anyone
finds this sort of thing useful.
About ZingoTech Labs
--------------------
Entirely fictional. Decartes would call it a construct of
Jim Nelson's mind. Still, the idea is simple: there just aren't
enough quality widgets in the world ("quality" being the
emphasized word). Too often, you find you need some little
program that would make life that much better, only you can't
fine one anywhere. Or, you get your hands on one, and it's too
limited, ugly, tough to use, or, gosh darnit, the guy wants
twenty-five bucks for you to legally use it after 30 days.
That's why (most) of our products are freeware. There's no
reason to pay more than $5 and the price of a first-class stamp
for something like, well, DirStack. But it's nice to have. So
keep it!
However ...
-----------
Standard disclaimer. Jim Nelson / ZingoTech Labs can't be
held responsible for any problems, liabilities, destruction,
permissiveness, loss of house and family, or any other bad kind
of thing from it's use. Bottom line: if you use it, you're
responsible for the consequences.
On a lighter note
-----------------
I love criticism and suggestions. Whatever you think,
*please* write and tell me. Small donations (cash or otherwise)
will be heartily accepted. Plus, I might have a newer version
available as well. Whatever you have to say, contact me at:
Jim Nelson / ZingoTech Labs
1190 Buchon St.
San Luis Obispo, CA 93401
Internet: jnelson@tuba.calpoly.edu
Thanks!